#pragma once

struct GLVertexArray;

class IRenderableObject: public INode
{
public:
	IRenderableObject(const NodeCreation& nc);
	virtual ~IRenderableObject();

	/*-IObject------------------------------------------------------------------*/
	uint TreeCalc();

	/*-IRenderModelMatrix-------------------------------------------------------*/
	void OnRender(const RenderTask* renderTask, uint camarg);

	/*--------------------------------------------------------------------------*/
	virtual void RenderableBinder(uint treeCalcFlags) = 0;
	virtual void RenderableHelper(const uint i, ERenderQuality::Type quality, uint pendingInstances) = 0;

	/*--------------------------------------------------------------------------*/

protected:
	virtual void RenderBoundingBox();
};